cargo.git
11 years agoAdd some simple tests for cross compilation
Alex Crichton [Fri, 11 Jul 2014 16:08:51 +0000 (09:08 -0700)]
Add some simple tests for cross compilation

11 years agoRefactor the parallel job queue to its own module
Alex Crichton [Fri, 11 Jul 2014 15:57:47 +0000 (08:57 -0700)]
Refactor the parallel job queue to its own module

11 years agoRefactor fingerprint logic out of cargo_rustc
Alex Crichton [Fri, 11 Jul 2014 15:45:42 +0000 (08:45 -0700)]
Refactor fingerprint logic out of cargo_rustc

11 years agoRefactor Context into its own submodule
Alex Crichton [Fri, 11 Jul 2014 15:35:23 +0000 (08:35 -0700)]
Refactor Context into its own submodule

11 years agoRefactor `Job` to its own module
Alex Crichton [Fri, 11 Jul 2014 15:06:39 +0000 (08:06 -0700)]
Refactor `Job` to its own module

11 years agoImprove intra-target parallelism
Alex Crichton [Fri, 11 Jul 2014 14:50:24 +0000 (07:50 -0700)]
Improve intra-target parallelism

With cross compilation soon on the horizon, it may be required to build a
library for both the host and target architectures. These two copies can
certainly be built in parallel. Additionally, all binaries produced by a package
can also be built in parallel, but are currently forced to be built
sequentially.

This commit improves this parallelism by allowing each job to create more work
before the package is considered built. Only after all targets have been built
is the new fingerprint written.

11 years agoUpdate to master
Alex Crichton [Fri, 11 Jul 2014 14:50:01 +0000 (07:50 -0700)]
Update to master

11 years agoImplement a `plugin` flag for targets
Alex Crichton [Fri, 11 Jul 2014 01:26:30 +0000 (18:26 -0700)]
Implement a `plugin` flag for targets

If `plugin = true` is specified, then the target is considered a compiler plugin
which implies two separate properties:

* The library must be compiled as a dylib
* The library must be compiled for the host architecture

11 years agoAdd bare-bones cross compilation support to cargo
Alex Crichton [Thu, 10 Jul 2014 23:03:01 +0000 (16:03 -0700)]
Add bare-bones cross compilation support to cargo

This adds a new flag, --target, to the `cargo-build` command. This flag will
indicate that all output should be scoped under the `$triple` directory inside
of the output `target` directory. The compiler is invoked with `--target
$triple` and all custom build commands are passed `TRIPLE` if one is provided.

11 years agoauto merge of #157 : rust-lang/cargo/graph-resolve, r=alexcrichton
bors [Thu, 10 Jul 2014 19:52:04 +0000 (19:52 +0000)]
auto merge of #157 : rust-lang/cargo/graph-resolve, r=alexcrichton

This incorporates previous bugfixes by @alexcrichton that are still stuck in bors.

11 years agoFix some tests
Alex Crichton [Thu, 10 Jul 2014 19:39:05 +0000 (12:39 -0700)]
Fix some tests

11 years agoTighten up some tests
Alex Crichton [Thu, 10 Jul 2014 19:08:13 +0000 (12:08 -0700)]
Tighten up some tests

11 years agoFix filtering for test deps
Alex Crichton [Thu, 10 Jul 2014 18:50:03 +0000 (11:50 -0700)]
Fix filtering for test deps

This fixes `cargo test` to only test the *local* package

11 years agoNo need for a TempDir, use `-` as input
Alex Crichton [Thu, 10 Jul 2014 18:49:47 +0000 (11:49 -0700)]
No need for a TempDir, use `-` as input

11 years agoimpl Show for Profile
Alex Crichton [Thu, 10 Jul 2014 18:49:33 +0000 (11:49 -0700)]
impl Show for Profile

11 years agoAdd -u to `cargo test`
Alex Crichton [Thu, 10 Jul 2014 18:49:12 +0000 (11:49 -0700)]
Add -u to `cargo test`

11 years agoMore updates to master
Alex Crichton [Thu, 10 Jul 2014 15:45:31 +0000 (08:45 -0700)]
More updates to master

11 years agoMake README nightlies links clickable
Tomaka17 [Wed, 9 Jul 2014 07:43:28 +0000 (09:43 +0200)]
Make README nightlies links clickable

11 years agoToStr::to_str -> ToString::to_string
Michael Gehring [Wed, 9 Jul 2014 13:38:10 +0000 (15:38 +0200)]
ToStr::to_str -> ToString::to_string

Conflicts:
src/cargo/core/resolver.rs
src/cargo/ops/cargo_rustc.rs

11 years agoRemove hardcoding
Yehuda Katz [Thu, 10 Jul 2014 08:26:51 +0000 (01:26 -0700)]
Remove hardcoding

11 years agoAdd some unit tests
Yehuda Katz [Thu, 10 Jul 2014 07:48:50 +0000 (00:48 -0700)]
Add some unit tests

11 years agoFixed a number of bugs related to rustc building
Yehuda Katz [Thu, 10 Jul 2014 07:27:40 +0000 (00:27 -0700)]
Fixed a number of bugs related to rustc building

Most notably, `resolve` now takes the root, so it can properly link the
root package with its dependencies (which is required to build the
--externs for the root package).

11 years agoResolve more correctly and add --extern
Yehuda Katz + Carl Lerche [Thu, 10 Jul 2014 00:48:37 +0000 (17:48 -0700)]
Resolve more correctly and add --extern

This commit adds support for passing --extern to dependencies. It allows
multiple copies of the same named dependency in the system, as long as
they come from different repos.

11 years agoDisable passing -g for now
Alex Crichton [Wed, 9 Jul 2014 22:04:59 +0000 (15:04 -0700)]
Disable passing -g for now

11 years agoFix --release not compiling upstream deps with -O3
Alex Crichton [Wed, 9 Jul 2014 20:55:00 +0000 (13:55 -0700)]
Fix --release not compiling upstream deps with -O3

This touches up the filtering logic to ensure that upstream dependencies as well
as local dependencies are built with optimizations when `cargo build --release`
is used.

11 years agoFix testing bins with lib deps
Alex Crichton [Wed, 9 Jul 2014 20:08:44 +0000 (13:08 -0700)]
Fix testing bins with lib deps

If a package had both bin and lib deps, `cargo test` was not building the `lib`
dependency when building the bins with `--test`. This commit adds an extra
"test" profile (not compiled with --test) for situations such as this which is
filtered out normally but kept around for the `cargo test` case.

11 years agoauto merge of #150 : rust-lang/cargo/source-id-cleanup, r=alexcrichton
bors [Wed, 9 Jul 2014 02:44:51 +0000 (02:44 +0000)]
auto merge of #150 : rust-lang/cargo/source-id-cleanup, r=alexcrichton

This PR is a stepping stone towards eventual use of `--extern`, which will allow multiple packages with the same name to exist in the transitive dependency graph.

11 years agoFix registry query fn
Yehuda Katz + Carl Lerche [Tue, 8 Jul 2014 23:28:12 +0000 (16:28 -0700)]
Fix registry query fn

11 years agoemit -C extra-filename and metadata
Yehuda Katz + Carl Lerche [Tue, 8 Jul 2014 22:50:50 +0000 (15:50 -0700)]
emit -C extra-filename and metadata

11 years agoRefactor PackageId.namespace -> source_id
Yehuda Katz + Carl Lerche [Tue, 8 Jul 2014 21:58:56 +0000 (14:58 -0700)]
Refactor PackageId.namespace -> source_id

11 years agoauto merge of #147 : alexcrichton/cargo/ls-files, r=wycats
bors [Tue, 8 Jul 2014 16:37:57 +0000 (16:37 +0000)]
auto merge of #147 : alexcrichton/cargo/ls-files, r=wycats

Apparently older versions of git report all contents of submodules in the
ls-files command!

11 years agoIgnore lib directory for exes check
Alex Crichton [Tue, 8 Jul 2014 16:30:54 +0000 (09:30 -0700)]
Ignore lib directory for exes check

Apparently older versions of git report all contents of submodules in the
ls-files command!

11 years agoauto merge of #141 : jdeseno/cargo/cargo-clean, r=alexcrichton
bors [Tue, 8 Jul 2014 15:59:50 +0000 (15:59 +0000)]
auto merge of #141 : jdeseno/cargo/cargo-clean, r=alexcrichton

Adds cargo-clean sub-command. Would address Issue #51 if this PR is merged.

11 years agoauto merge of #124 : alexcrichton/cargo/no-more-binaries, r=wycats
bors [Tue, 8 Jul 2014 15:14:51 +0000 (15:14 +0000)]
auto merge of #124 : alexcrichton/cargo/no-more-binaries, r=wycats

Closes #58

11 years agoEnsure no more binaries are checked in
Alex Crichton [Sat, 5 Jul 2014 23:55:26 +0000 (16:55 -0700)]
Ensure no more binaries are checked in

Closes #58

11 years agocargo clean. resolves #51
Joshua DeSeno [Mon, 7 Jul 2014 08:50:05 +0000 (17:50 +0900)]
cargo clean. resolves #51

11 years agoauto merge of #142 : rust-lang/cargo/new-names, r=alexcrichton
bors [Tue, 8 Jul 2014 06:14:56 +0000 (06:14 +0000)]
auto merge of #142 : rust-lang/cargo/new-names, r=alexcrichton

This PR moves Cargo over to the new naming based on [RFC 35](https://github.com/rust-lang/rfcs/blob/master/complete/0035-remove-crate-id.md).

* You should no longer use `#[crate_name]` or `#[crate_id]` in any crate managed by Cargo.
* You no longer need a `[[lib]]` section in your `Cargo.toml` if you name your library `src/lib.rs`.
* You no longer need a `[[bin]]` section in your `Cargo.toml` if you name your library `src/main.rs`.
* You can include multiple `[[bins]]` in `src/bin/*.rs` and Cargo will treat them as if they were specified via `[[bin]]`.

This commit does not yet add support for `-C metadata` or `-C extra-file-name`, but that is coming soon.

11 years agoRemove glob dependency
Yehuda Katz [Tue, 8 Jul 2014 04:50:45 +0000 (21:50 -0700)]
Remove glob dependency

11 years agoauto merge of #125 : alexcrichton/cargo/issue-120, r=wycats
bors [Tue, 8 Jul 2014 05:14:55 +0000 (05:14 +0000)]
auto merge of #125 : alexcrichton/cargo/issue-120, r=wycats

Closes #120

11 years agoThis updates Cargo for #[crate_name]
Yehuda Katz + Carl Lerche [Tue, 8 Jul 2014 00:59:18 +0000 (17:59 -0700)]
This updates Cargo for #[crate_name]

11 years agoWarn about missing [[lib]] and [[bin]] sections
Alex Crichton [Sun, 6 Jul 2014 00:10:23 +0000 (17:10 -0700)]
Warn about missing [[lib]] and [[bin]] sections

Closes #120

11 years agoauto merge of #139 : tomjakubowski/cargo/fix-symlink-blowup, r=alexcrichton
bors [Tue, 8 Jul 2014 01:46:02 +0000 (01:46 +0000)]
auto merge of #139 : tomjakubowski/cargo/fix-symlink-blowup, r=alexcrichton

Fingerprinting will fail at an `fs::stat()` call if there is a symlink in
a package's directory pointing to a non-existent file or directory.
This commit recovers from an `fs::stat(`) error on these bogus symlinks by
faking an mtime of 0, which should not affect the overall fingerprint.

Fix #135

11 years agoIgnore the broken symlinks test on windows
Tom Jakubowski [Tue, 8 Jul 2014 01:07:23 +0000 (18:07 -0700)]
Ignore the broken symlinks test on windows

11 years agofingerprint: Recover from fs::stat errors
Tom Jakubowski [Mon, 7 Jul 2014 21:46:03 +0000 (14:46 -0700)]
fingerprint: Recover from fs::stat errors

Fingerprinting will fail at an fs::stat() call if there is a broken
symlink in a package's directory.  This commit recovers from fs::stat()
errors on broken symlinks by treating them as having mtime 0, which
should not affect the overall fingerprint.

Fix #135

11 years agoauto merge of #140 : rust-lang/cargo/release, r=carllerche
bors [Mon, 7 Jul 2014 22:29:56 +0000 (22:29 +0000)]
auto merge of #140 : rust-lang/cargo/release, r=carllerche

11 years agoAdd --release and related refactoring
Yehuda Katz + Carl Lerche [Mon, 7 Jul 2014 22:17:34 +0000 (15:17 -0700)]
Add --release and related refactoring

11 years agoauto merge of #136 : Tomaka17/cargo/multiple-build-cmds, r=alexcrichton
bors [Mon, 7 Jul 2014 20:44:55 +0000 (20:44 +0000)]
auto merge of #136 : Tomaka17/cargo/multiple-build-cmds, r=alexcrichton

Closes #69

Adds a new syntax for the `build = ` command:

```
build = [
    ["./configure"],
    ["make", "lib/libovr.a"],
    ["/bin/mkdir", "target"],
    ["/bin/cp", "lib/libovr.a", "target/"]
]
```

The current syntax `build = "make"` still works.

`build = [ "a", "b" ]` is forbidden because it is ambiguous.

11 years agoSupport for multiple and cleaner build commands
Tomaka17 [Mon, 7 Jul 2014 16:33:45 +0000 (18:33 +0200)]
Support for multiple and cleaner build commands

11 years agoMerge pull request #134 from alexcrichton/nightlies
Yehuda Katz [Mon, 7 Jul 2014 14:52:38 +0000 (07:52 -0700)]
Merge pull request #134 from alexcrichton/nightlies

Add documentation about cargo nightlies

11 years agoAdd documentation about cargo nightlies
Alex Crichton [Mon, 7 Jul 2014 14:49:14 +0000 (07:49 -0700)]
Add documentation about cargo nightlies

11 years agoauto merge of #131 : alexcrichton/cargo/update-to-master, r=update
bors [Mon, 7 Jul 2014 13:28:45 +0000 (13:28 +0000)]
auto merge of #131 : alexcrichton/cargo/update-to-master, r=update

11 years agoUpdate with master changes
Alex Crichton [Mon, 7 Jul 2014 13:27:09 +0000 (06:27 -0700)]
Update with master changes

11 years agoauto merge of #129 : riccieri/cargo/no_more_crate_id, r=alexcrichton
bors [Mon, 7 Jul 2014 13:18:13 +0000 (13:18 +0000)]
auto merge of #129 : riccieri/cargo/no_more_crate_id, r=alexcrichton

This solves warnings about the use of the deprecated `#![crate_id]` attribute, as well as the deprecated `--crate-file-name` command line option. See rust-lang/rust@c3ef04be5589901e7f3d9428ebe8f1eb2bdca7e4 for details.

Note that this won't compile on the current master without #128 (or equivalent). I can rebase after a fix lands

11 years agoauto merge of #128 : riccieri/cargo/nightly-fix, r=alexcrichton
bors [Mon, 7 Jul 2014 13:11:04 +0000 (13:11 +0000)]
auto merge of #128 : riccieri/cargo/nightly-fix, r=alexcrichton

On rust-lang/rust@ed47c479d73fd7b57d3b493e03c74e2932733163 (which landed yesterday via rust-lang/rust@b8ef5cf1310a7b1e31d0993885d867a6804597ad), `url.path` now returns a `Path`, not a `String`. This one-line patch makes cargo compile again (at least as of rust-lang/rust@b8ef5cf1310a7b1e31d0993885d867a6804597ad, the `crate_id` changes haven't reached me yet).

11 years agoUse --print-file-name instead of --crate-file-name
Renato Zannon [Mon, 7 Jul 2014 05:22:30 +0000 (02:22 -0300)]
Use --print-file-name instead of --crate-file-name

11 years agoUse #![crate_name] instead of #![crate_id]
Renato Zannon [Mon, 7 Jul 2014 05:19:59 +0000 (02:19 -0300)]
Use #![crate_name] instead of #![crate_id]

11 years agourl.path is now a Path, not a String
Renato Zannon [Sun, 6 Jul 2014 23:07:56 +0000 (20:07 -0300)]
url.path is now a Path, not a String

11 years agoauto merge of #123 : alexcrichton/cargo/canonicalize-github-urls, r=wycats
bors [Sat, 5 Jul 2014 23:59:58 +0000 (23:59 +0000)]
auto merge of #123 : alexcrichton/cargo/canonicalize-github-urls, r=wycats

In addition to canonicalizing checkout locations, this canonicalizes packages
for the resolver. This allows two dependencies with slightly different urls
pointing to the same repository to resolve to the same location and package.

Closes #104

11 years agoCanonicalize github urls for the resolver
Alex Crichton [Sat, 5 Jul 2014 23:44:55 +0000 (16:44 -0700)]
Canonicalize github urls for the resolver

In addition to canonicalizing checkout locations, this canonicalizes packages
for the resolver. This allows two dependencies with slightly different urls
pointing to the same repository to resolve to the same location and package.

Closes #104

11 years agoauto merge of #122 : Benny1992/cargo/master, r=alexcrichton
bors [Sat, 5 Jul 2014 17:59:56 +0000 (17:59 +0000)]
auto merge of #122 : Benny1992/cargo/master, r=alexcrichton

Tried with [[executable]] and got this:

```bash
FizzBuzz (master*) $ cargo build                                                                                                             mri-2.1.2
unused manifest key: executable.name
unused manifest key: executable.path
       Fresh fizzbuzz v0.0.1 (file:/home/benny/Web/RustApplications/FizzBuzz)
```

I think ```executable``` section should be ```bin```

11 years agouse [[bin]] instead of [[executable]]
Benny [Sat, 5 Jul 2014 13:36:36 +0000 (15:36 +0200)]
use [[bin]] instead of [[executable]]

11 years agoauto merge of #116 : Indiv0/cargo/typofix, r=alexcrichton
bors [Fri, 4 Jul 2014 02:44:56 +0000 (02:44 +0000)]
auto merge of #116 : Indiv0/cargo/typofix, r=alexcrichton

Currently, the "single source" error appears like this, with missing whitespace:

    lib/game-of-life $ cargo build --verbose
    An unknown error occurred

    Caused by:
      At the moment, Cargo only supports asingle source for a particular package name (piston).

This fixes the typo.

11 years agoFix missing space typo in single source error
Indiv0 [Fri, 4 Jul 2014 02:29:04 +0000 (22:29 -0400)]
Fix missing space typo in single source error

11 years agoauto merge of #110 : bcobb/cargo/patch-1, r=alexcrichton
bors [Thu, 3 Jul 2014 22:31:19 +0000 (22:31 +0000)]
auto merge of #110 : bcobb/cargo/patch-1, r=alexcrichton

Just a small grammar change :smile:

11 years agoauto merge of #106 : alexcrichton/cargo/no-path, r=wycats
bors [Thu, 3 Jul 2014 22:03:26 +0000 (22:03 +0000)]
auto merge of #106 : alexcrichton/cargo/no-path, r=wycats

This allows usage of cargo without all the executables in your PATH, you only
need to be able to reach the first one.

11 years agoauto merge of #113 : rust-lang/cargo/dev-deps, r=alexcrichton
bors [Thu, 3 Jul 2014 21:51:32 +0000 (21:51 +0000)]
auto merge of #113 : rust-lang/cargo/dev-deps, r=alexcrichton

Development dependencies are included when building or testing the current package, but not packages that depend on it:

```toml
[dev-dependencies.hamcrest]

git = "https://github.com/carllerche/hamcrest-rust.git"
```

11 years agoFix up dev-dependencies
Yehuda Katz + Carl Lerche [Thu, 3 Jul 2014 01:13:00 +0000 (18:13 -0700)]
Fix up dev-dependencies

11 years agoAdded [dev-dependencies] sections to Cargo.toml
Yehuda Katz + Carl Lerche [Wed, 2 Jul 2014 23:58:25 +0000 (16:58 -0700)]
Added [dev-dependencies] sections to Cargo.toml

If you put a dependency in [dev-dependencies], it will only be
used when building (or testing) your packages, not other packages that
depend on it.

11 years agoAdd support for non-transitive dependencies
Yehuda Katz + Carl Lerche [Wed, 2 Jul 2014 23:32:24 +0000 (16:32 -0700)]
Add support for non-transitive dependencies

Development and test dependencies should not be transitively pulled in.
For example, if I use rust-curl, and it happens to use hamcrest for
testing, that does not mean I depend on hamcrest.

11 years agoUpdate hammer.rs to be compatible with the current rust master
Björn Steinbrink [Wed, 2 Jul 2014 17:37:15 +0000 (19:37 +0200)]
Update hammer.rs to be compatible with the current rust master

11 years agoREADME uses "its" instead of "it's"
Brian Cobb [Wed, 2 Jul 2014 13:54:46 +0000 (08:54 -0500)]
README uses "its" instead of "it's"

11 years agoEnable execution without cargo in PATH
Alex Crichton [Tue, 1 Jul 2014 14:55:19 +0000 (07:55 -0700)]
Enable execution without cargo in PATH

This allows usage of cargo without all the executables in your PATH, you only
need to be able to reach the first one.

11 years agoauto merge of #109 : steveklabnik/cargo/json, r=alexcrichton
bors [Wed, 2 Jul 2014 00:00:00 +0000 (00:00 +0000)]
auto merge of #109 : steveklabnik/cargo/json, r=alexcrichton

11 years agoFixing deprecated JSON call
Steve Klabnik [Tue, 1 Jul 2014 23:47:56 +0000 (19:47 -0400)]
Fixing deprecated JSON call

11 years agoauto merge of #108 : jdeseno/cargo/clean-submodules, r=alexcrichton
bors [Tue, 1 Jul 2014 23:15:01 +0000 (23:15 +0000)]
auto merge of #108 : jdeseno/cargo/clean-submodules, r=alexcrichton

Small change. Use git's `submodule` `foreach` command to cleanup dependencies. I think this way you won't have to remember to update the makefile when a dependency is added or removed.

11 years agoauto merge of #107 : alexcrichton/cargo/issue-102, r=wycats
bors [Tue, 1 Jul 2014 22:49:29 +0000 (22:49 +0000)]
auto merge of #107 : alexcrichton/cargo/issue-102, r=wycats

Closes #102

11 years agomake clean-all via git submodule foreach
josh [Tue, 1 Jul 2014 22:49:04 +0000 (07:49 +0900)]
make clean-all via git submodule foreach

11 years agoDon't call generic methods on trait objects
Alex Crichton [Tue, 1 Jul 2014 22:40:33 +0000 (15:40 -0700)]
Don't call generic methods on trait objects

Closes #102

11 years agoauto merge of #100 : rust-lang/cargo/meta-packages, r=alexcrichton
bors [Tue, 1 Jul 2014 06:30:02 +0000 (06:30 +0000)]
auto merge of #100 : rust-lang/cargo/meta-packages, r=alexcrichton

This allows a single git repository to have multiple packages contained inside.

* Cargo will look for `Cargo.toml`s located anywhere inside the project.
* Cargo will stop searching once it reaches a submodule, to avoid accidentally exporting someone else's packages. It is still possible to explicitly depend on packages from a submodule using the `path=` syntax on dependencies.

11 years agoImprovements based on the review
Yehuda Katz [Tue, 1 Jul 2014 06:27:33 +0000 (23:27 -0700)]
Improvements based on the review

11 years agoauto merge of #101 : alexcrichton/cargo/fix-git-1.7, r=wycats
bors [Tue, 1 Jul 2014 04:15:54 +0000 (04:15 +0000)]
auto merge of #101 : alexcrichton/cargo/fix-git-1.7, r=wycats

Apparently these versions of git are broken for `git fetch $url`, so we have to
resort to `git fetch origin` and then just pray that it hasn't changed in the
meantime.

11 years agoFix fetch() on git < 1.7.3
Alex Crichton [Tue, 1 Jul 2014 02:37:55 +0000 (19:37 -0700)]
Fix fetch() on git < 1.7.3

Apparently these versions of git are broken for `git fetch $url`, so we have to
resort to `git fetch origin` and then just pray that it hasn't changed in the
meantime.

11 years agoMeta-packages
Yehuda Katz [Tue, 1 Jul 2014 01:36:27 +0000 (18:36 -0700)]
Meta-packages

11 years agoauto merge of #92 : alexcrichton/cargo/dash-j, r=wycats
bors [Mon, 30 Jun 2014 23:15:02 +0000 (23:15 +0000)]
auto merge of #92 : alexcrichton/cargo/dash-j, r=wycats

This commit implements the -j flag in the `cargo_rustc` module, using the
primitives from the other commits. The default parllelism is `os::num_cpus()`.

This change also brings proper freshness propagation instead of the hokey logic
of once something is compiled, "compile everything to the right as well".

11 years agoImplement parallel compilation
Alex Crichton [Sun, 29 Jun 2014 04:30:44 +0000 (21:30 -0700)]
Implement parallel compilation

This commit implements the -j flag in the `cargo_rustc` module, using the
primitives from the previous commits. The default parllelism is `os::num_cpus()`

This change also brings proper freshness propagation instead of the hokey logic
of once something is compiled, "compile everything to the right as well".

11 years agoAdd a dependency queue abstraction
Alex Crichton [Sun, 29 Jun 2014 18:03:15 +0000 (11:03 -0700)]
Add a dependency queue abstraction

This data structure is used to track when packages should be built and when they
become buildable. Additionally, it is used to propagate dirtiness throughout the
dependency graph.

11 years agoAdd a task-pool abstraction
Alex Crichton [Sun, 29 Jun 2014 04:23:50 +0000 (21:23 -0700)]
Add a task-pool abstraction

The standard library also provides a task pool, but it's scheduling is not quite
the desired semantics. This task pool instead has all workers contend on a
shared queue to take work from rather than assigning new jobs to specific
workers for forever.

11 years agoMake CargoError inherit from Send
Alex Crichton [Sat, 28 Jun 2014 23:55:02 +0000 (16:55 -0700)]
Make CargoError inherit from Send

Due to a bug in the compiler, this also requires adding `+ Send` any time that
CargoError is mentioned. This change will allow errors to be sent across tasks.

11 years agoAccept -j as a command-line parameter
Alex Crichton [Sat, 28 Jun 2014 23:54:16 +0000 (16:54 -0700)]
Accept -j as a command-line parameter

This parameter will be used to control the number of concurrent builds that
cargo has executing.

11 years agoauto merge of #86 : alexcrichton/cargo/issue-77, r=wycats
bors [Mon, 30 Jun 2014 20:20:07 +0000 (20:20 +0000)]
auto merge of #86 : alexcrichton/cargo/issue-77, r=wycats

Instead, keep a table of what we've visited and halt recursion whenever we
re-visit a package.

11 years agoDon't infinitely recurse on cyclic path deps
Alex Crichton [Sat, 28 Jun 2014 20:33:29 +0000 (13:33 -0700)]
Don't infinitely recurse on cyclic path deps

Instead, keep a table of what we've visited and halt recursion whenever we
re-visit a package.

Closes #77

11 years agoauto merge of #87 : alexcrichton/cargo/toml-warnings, r=wycats
bors [Mon, 30 Jun 2014 20:00:09 +0000 (20:00 +0000)]
auto merge of #87 : alexcrichton/cargo/toml-warnings, r=wycats

Closes #27

11 years agoauto merge of #83 : huonw/cargo/manifest-search, r=alexcrichton,alexcrichton
bors [Mon, 30 Jun 2014 01:15:09 +0000 (01:15 +0000)]
auto merge of #83 : huonw/cargo/manifest-search, r=alexcrichton,alexcrichton

11 years agoCheck for the existence of Cargo.toml when reading packages.
Huon Wilson [Sat, 28 Jun 2014 09:25:32 +0000 (19:25 +1000)]
Check for the existence of Cargo.toml when reading packages.

Fixes #82.

11 years agoGeneralise `find_project` to not always search parents.
Huon Wilson [Sat, 28 Jun 2014 09:24:15 +0000 (19:24 +1000)]
Generalise `find_project` to not always search parents.

Also, add a helper around `find_project` that returns `dir/file` rather
than just `dir`.

11 years agoauto merge of #90 : brson/cargo/fix, r=alexcrichton
bors [Sun, 29 Jun 2014 00:15:06 +0000 (00:15 +0000)]
auto merge of #90 : brson/cargo/fix, r=alexcrichton

This reverts commit 09e52c88d8bf729570e642af4e51c3985672b501, reversing
changes made to bc31d2a23b9ac6b06042e89c9e6ed98474859bf5.

11 years agoRevert "Merge pull request #89 from rust-lang/revert-88-fix"
Brian Anderson [Sun, 29 Jun 2014 00:11:13 +0000 (17:11 -0700)]
Revert "Merge pull request #89 from rust-lang/revert-88-fix"

This reverts commit 09e52c88d8bf729570e642af4e51c3985672b501, reversing
changes made to bc31d2a23b9ac6b06042e89c9e6ed98474859bf5.

11 years agoMerge pull request #89 from rust-lang/revert-88-fix
Brian Anderson [Sun, 29 Jun 2014 00:09:35 +0000 (17:09 -0700)]
Merge pull request #89 from rust-lang/revert-88-fix

Revert "Basic URL canonicalization. Fixes #84"

11 years agoRevert "Basic URL canonicalization. Fixes #84"
Brian Anderson [Sun, 29 Jun 2014 00:09:22 +0000 (17:09 -0700)]
Revert "Basic URL canonicalization. Fixes #84"

11 years agoMerge pull request #88 from brson/fix
Brian Anderson [Sun, 29 Jun 2014 00:08:02 +0000 (17:08 -0700)]
Merge pull request #88 from brson/fix

Basic URL canonicalization. Fixes #84